#ifndef __TIMERS_H__
#define __TIMERS_H__

#include <compiler.h>

/* TCON */
SFR(TCON, 0x88);
SBIT(IT0, 0x88, 0);
SBIT(IE0, 0x88, 1);
SBIT(IT1, 0x88, 2);
SBIT(IE1, 0x88, 3);
SBIT(TR0, 0x88, 4);
SBIT(TF0, 0x88, 5);
SBIT(TR1, 0x88, 6);
SBIT(TF1, 0x88, 7);

/* TMOD */
SFR(TMOD, 0x89);
SBIT(T0M0, 0x89, 0);
SBIT(T0M1, 0x89, 1);
SBIT(T0CT, 0x89, 2);
SBIT(T0GATE, 0x89, 3);
SBIT(T1M0, 0x89, 4);
SBIT(T1M1, 0x89, 5);
SBIT(T1CT, 0x89, 6);
SBIT(T1GATE, 0x89, 7);

/* AUXR */
SFR(AUXR, 0x8E);
SBIT(T2X12, 0x8E, 2);
SBIT(T2CT, 0x8E, 3);
SBIT(T2R, 0x8E, 4);
SBIT(T1X12, 0x8E, 6);
SBIT(T0X12, 0x8E, 7);

SFR(T4T3M, 0xDD);

/* Timer 0 */
SFR(TL0, 0x8A);
SFR(TH0, 0x8C);
SFRX(TM0PS, 0xFEA0);

/* Timer 1 */
SFR(T1L, 0x8B);
SFR(T1H, 0x8D);
SFRX(TM1PS, 0xFEA1);

/* Timer 2 */
SFR(T2L, 0xD7);
SFR(T2H, 0xD6);
SFRX(TM2PS, 0xFEA2);

/* Timer 3 */
SFR(T3L, 0xD5);
SFR(T3H, 0xD4);
SFRX(TM3PS, 0xFEA3);

/* Timer 4 */
SFR(T4L, 0xD3);
SFR(T4H, 0xD2);
SFRX(TM4PS, 0xFEA4);

#endif // !__TIMERS_H__
